return function (conn, req, args)
  collectgarbage()
  local info = {}
  local majorVer, minorVer, devVer

  majorVer, minorVer, devVer, info.cid, info.fid, info.fsize, info.fmode, info.fspeed = node.info()
  info.ver = majorVer.."."..minorVer.."."..devVer
  info.fsize = info.fsize * 1024;
  info.mfree = node.heap()
  info.muse = collectgarbage("count") * 1024
  info.amac = wifi.ap.getmac()
  info.smac = wifi.sta.getmac()
  info.user = req.user

  local json = sjson.encode(info)
  if json then
    dofile("server/header.lc")(conn, 200, 'json')
    conn:send(json)
  else
    dofile("server/header.lc")(conn, 500, 'json')
  end

  info = nil
  nilmajorVer = nil
  minorVer = nil
  devVer = nil
  ok = nil
  json = nil
  collectgarbage()
end